package main

import "fmt"

//接口
type dog struct {
}

type cat struct {
}

type person struct {
	name string
}

func (d dog) say() {
	fmt.Println("www")
}

func (c cat) say() {
	fmt.Println("mmm")
}

func (p person) say() {
	fmt.Println(p.name, "哈哈哈")
}

//类似Java的接口 上面实现了say方法
type sayer interface {
	say()
}

func da(s sayer) {
	s.say()
}
func main() {

	c := cat{}
	da(c)

	d := dog{}
	da(d)

	p := person{
		name: "ccc",
	}
	da(p)
}
